package cn.qiguai.sphapi.service;

import cn.qiguai.sphapi.controller.request.GetPageOrderParam;
import cn.qiguai.sphapi.controller.response.Page;
import cn.qiguai.sphapi.domain.Addressee;
import cn.qiguai.sphapi.domain.ShoppingCartOrder;
import cn.qiguai.sphapi.domain.User;

import java.util.List;

public interface UserService {
	/**
	 * 用户注册
	 * @param u 用户信息
	 * @return 成功与否
	 */
	boolean register(User u);

	/**
	 * 用户登录
	 * @param u 用户数据
	 * @return 成功与否
	 */
	String login(User u);

	/**
	 * 查找指定手机号是否存在
	 * @param phoneNumber 手机号
	 * @return true：存在 false：不存在
	 */
	boolean existPhoneNumber(String phoneNumber);

	/**
	 * 将商品添加至购物车
	 * @param info 信息
	 * @return 成功与否
	 */
	boolean addToShoppingCart(ShoppingCartOrder info);

	/**
	 * 分页查询购物车订单
	 * @param param 参数
	 * @return list
	 */
	Page<ShoppingCartOrder> getPageShoppingCartOrder(GetPageOrderParam param);

	/**
	 * 勾选单个订单
	 * @param orderId 订单id
	 * @return bool
	 */
	boolean selectOneShoppingCartOrder(int orderId);

	/**
	 * 勾选用户的全部订单
	 * @param userId 用户id
	 * @param flag 勾选状态
	 * @return bool
	 */
	boolean selectAllShoppingCartOrder(int userId, boolean flag);

	/**
	 * 删除指定订单
	 * @param ids 订单id
	 * @return bool
	 */
	boolean removeShoppingCartOrder(List<Integer> ids);

	/**
	 * 获取用户的收件人信息
	 * @param userId 用户id
	 * @return list
	 */
	List<Addressee> getAddresseeInfo(int userId);
}
